package com.zijidelu.luframework.infrastructure.persistence.repository.core.bizsig;

import com.zijidelu.luframework.base.bizsig.BizSignature;
import com.zijidelu.luframework.base.model.DataModel;
import com.zijidelu.luframework.base.model.PO;
import com.zijidelu.luframework.infrastructure.persistence.repository.core.base.Repository;
import com.zijidelu.luframework.infrastructure.persistence.repository.core.criteria.BizSigPersistenceContext;

/**
 * 业务签名DTO数据仓库接口。
 *
 * @author ZIJIDELU
 * @datetime 2025/10/20 17:03
 */
public interface BizSigRepository<P extends PO, D extends DataModel> extends Repository<P, D> {

    /**
     * 获取业务签名持久化上下文。
     *
     * @return 业务签名持久化上下文
     */
    BizSigPersistenceContext<P, D> getBizSigPersistenceContext();

    /**
     * 获取唯一键数据处理器
     *
     * @param bizSignature 唯一键枚举
     * @return 唯一键数据处理器
     */
    BizSigDataProcessor<P, D> getBizSigDataProcessor(BizSignature<D> bizSignature);
}
